package com.shermanzhou.algorithm.sort;

/**
 * 每次遍历找到最值元素的位置，每次遍历完成，将最值元素放到已排序序列的末尾。
 * 选择排序是不稳定的排序算法，不稳定发生在最小元素与A[i]交换的时刻
 * @author zhouchaoqun
 * @date 2018/10/22 下午5:35
 */
public class SelectionSort {
    public static void main(String[] args) {
        int[] arr = {10,8,4,2,7,1,5,1,6};
        sort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

    public static void sort(int[] arr) {
        for(int i=0; i<arr.length; i++) {
            int minIdx = i;
            for (int j=i+1; j<arr.length; j++) {
                if (arr[j] < arr[minIdx]) {
                    minIdx = j;
                }
            }
            if (i != minIdx) {
                int tmp = arr[i];
                arr[i] = arr[minIdx];
                arr[minIdx] = tmp;
            }
        }
    }
}
